Method for flagging and relating information in a computer system

ABSTRACT

This document describes a user interface mechanism to relate information from multiple heterogeneous data sources. Data displayed in different regions on a user interface can be related by selection of an element in one region and pinning it. The pinned element acts as a filter for the information in the other regions on the user interface. Successive pinning of elements in other regions allows further filtering of the information in unpinned regions using the context of previously pinned elements.

FIELD OF THE INVENTION

[0001] This invention relates generally to a method and user interfacemechanism to relate information from multiple heterogeneous data sourcesin a computer system.

BACKGROUND OF THE INVENTION

[0002] Information systems frequently consist of multiple heterogeneousdata sources such as information repositories, financial and humanresources systems, customer and sales tracking applications and thelike. In this regard, enterprise decision makers often have to relateinformation from these multiple heterogeneous data sources in order toanalyze a business situation and to act upon it. For example, a decisionmaker might wish to quickly know which of a set of employees not onlyhas a background in aeronautical engineering but also has experiencewith aeronautical engineering company projects for the purpose of makinga staffing decision for an important research and development project.Even with access to a multi-dimensional database of human resourcesinformation, a decision-maker may not know how to isolate such a subsetof employees. For another example, a decision maker may wish to see alist of distributors that are distributing a particular enterpriseproduct. In this case, with access to merely a database list ofdistributors and associated products, it may be difficult for adecision-maker to quickly isolate the distributors for a particularproduct.

[0003] Currently, to perform these types of data inquiries to displaydesired information, most decision support tools are based on arelational, multi-dimensional or similar representation. The analysis ofinformation is performed through query execution with successivevisualization of the results. However, this approach requires a deepunderstanding by the user of the operations that can be appliedincluding an understanding of how data can be filtered and joined and anunderstanding of how to interpret the visualized results. For example,this type of process might include forming and typing queries with joinand filter criteria in order to retrieve data from one or more datasources. This in turn requires a specialist to form the query, whounderstands the nature of the data source(s) and the nature of the querysyntax. With respect to the examples given above, it may be necessary toemploy a software engineer that understands database programminglanguages in order to isolate the list of employees for the aeronauticalengineering staffing project or the list of distributors that distributea particular product.

[0004] However, because analysis of business data and making decisionsbased on such an analysis is becoming more and more of a mainstream taskin organizations, it is no longer desirable to restrict the performanceof these types of tasks to a class of specialists with the technicalskills necessary to perform the queries. Hence, there is a strong needfor an easy and flexible way for decision makers to join and filterinformation from multiple data sources and to visualize the resultswithout having to learn complex tools or query languages.

[0005] Computer systems that interact with the user commonly offer auser interface based on multiple windows that can represent applicationsor data. Windows can be opened, closed, moved, sized, juxtaposed and/oroverlapped. Each window represents a region where information can bedisplayed.

[0006] The World Wide Web and hypertext pages have made the browser animportant part of a user experience. A browser displays hypertext pagesin a window most commonly written in HTML. Pages may include embeddedcomponents (regions) such as HTML frames, ActiveX controls, or Javaapplets, each of which occupy a part of the visible page and are able todisplay information independently.

[0007] Current browser-based user interfaces, such as Microsoft®'sDigital Dashboard, have taken this approach further by defining WebParts in browser pages (Dashboards) in which information can be streamedindependently. The user is able to arrange such Web Parts (regions) in apreferred layout. Essentially, instead of opening multiple instances ofa browser, which a user may toggle among for viewing purposes, theDigital Dashboard enables the user to interact with multiple Web parts,browser windows or the like simultaneously as part of a unified userexperience.

[0008] The user interface paradigms described above and similarapproaches are based on defining individual regions on a user screen,each of which can display information. Each region can representinformation from a different data source in a different format. FIG. 1A,for example, shows an example of the visualization of data fromheterogeneous sources in different regions of a user interface. Region2,labeled “Customer,” displays information from a database with customerrelated information. In a similar way, Region4, labeled “Geography,”displays information about the geographical regions in which customersmay reside. Region1 and Region3, labeled “Sales Cube” and “Sales Chart”respectively, display information coming from a multi-dimensionaldatabase. These regions may display information in different textual,multimedia or graphical representations. These regions may also bepositioned fixed relative to each other or positioned individually bythe user.

[0009] Thus, regions represent sets of information that can either beindependent of each other or in a pre-computed relationship. In orderfor the user to easily join and filter information and to influence therelationship of information in the different regions in such a computersystem, a user interface mechanism is needed.

[0010] One prior art system that addresses this need is U.S. Pat. No.5,848,424, to Scheinkman et al. (the '424 patent). The '424 patentteaches an improved hypertext navigation system. A browser displayshypertext pages and indicates draggable elements on the page beingviewed. The browser also displays drop targets and detects when a userselects a draggable element and drops the draggable element over a droptarget. The browser and/or server to which it is connected examine aclass relation matrix having entries for intersections of draggableelement references and drop target references in which a matrix entry atan intersection of the draggable element and drop target is identifiedand used for performing an action which is a function of the matrixentry.

[0011]FIG. 1B generally illustrates the dragging aspect of the techniqueof the '424 patent in the context of the multiple data sources of FIG.1A. In the example, draggable element DE1, labeled “Southern,” can bedragged to drop target DT2, thereby causing the class relation matrix tobe examined, and causing only Southern customer names (not shown) to bedisplayed in drop target zone DT2. However, this prior art techniquesuffers from a number of failings. For example, once draggable elementDE1 is dropped into drop target DT2, it is impossible to tell from theinformation presented which draggable element(s) have been dropped intoany particular drop target, such as DT2. Thus, in the example, it is notapparent from the information presented that DE1 was dropped into DT2,unless the user remembers which draggable element(s) were dragged towhich drop target(s). While it might be simple enough to remember thedragging of a single draggable element DE1 to a single drop target DT2,the situation becomes much more complex when multiple draggableelement(s) and/or multiple drop target(s) are considered. Thus, the '424patent does not teach to convey the context of the information beingpresented, and thus after awhile, a user may no longer fully appreciatethe context of the information being presented.

[0012] Furthermore, with the system taught by the '424 patent, there isno way to undrag a draggable element DE1 from a drop target DT2, once ithas been dropped. While a user may reset the information being presentedto its original state, to a time before any draggable elements weredragged, this is wholly inadequate as a solution to the inability toundrag a draggable element, except in the case of a single draggableelement. It is wholly inadequate because in the case of multipledraggable elements having been dragged, the user may not undrag eachdraggable element one by one, for example, to ‘zoom out’ from thespecificity of information shown.

[0013] Additionally, with the system taught by the '424 patent, there isno way to simultaneously affect all of the regions or drop targets witha single draggable element. To the contrary, only a single drop targetmay be affected by a dragged draggable element at a time. In otherwords, to affect all of the drop targets represented by a display, auser would be required to drag a draggable element to all of the droptargets, separately. In the example of FIG. 4B, a user would be requiredto drag draggable element DE1 to each of DT1, DT2 and DT3 in Region1,Region2 and Region3, respectively, with separate dragging actions inorder to affect all of the available information with the draggableelement DE1.

[0014] Thus, it would be desirable to provide a system in which a usercan easily join and filter information, to influence the relationship ofinformation in different regions of a display in a computer system. Itwould be further desirable to provide a simple and flexible userinterface that achieves these goals. It would be still further desirableto provide a user interface mechanism that indicates the context of theinformation being joined and filtered on display. It would beadvantageous to provide a user interface mechanism that allows a user toselectively join and unjoin and filter and unfilter the informationbeing displayed. It would be further advantageous to provide a userinterface mechanism that allows a user to simultaneously affect theinformation being displayed in all of the regions of the display, asopposed to a single region. It would be still further advantageous toprovide a user interface mechanism that enables a user to select and/orpin an element contained in the region for the purpose of performingjoining and/or filtering operations upon the information contained inthe other regions of the display based upon the element selected and/orpinned.

SUMMARY OF THE INVENTION

[0015] The present invention provides a user interface mechanism torelate information from multiple heterogeneous data sources. Datadisplayed in different regions on a user interface can be related byselection of an element in one region and flagging it i.e., making theselection visible to user and storing information about the flaggedelement for relational purposes. The selection of the element may alsoitself flag the element. The flagged element acts as a filter for theinformation in the other regions of the user interface. Successiveflagging of elements in other regions allows further filtering of theinformation in unflagged regions using the context of previously flaggedelements. Elements may be flagged and unflagged freely by selecting andunflagging the element or by selecting a flagged element, therebyunflagging the element. In one embodiment, the flagging occurs bypinning the element, and unflagging occurs by unpinning the object.

[0016] Other features of the present invention are described below.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The system and methods for relating information in a computersystem are further described with reference to the accompanying drawingsin which:

[0018]FIG. 1A represents an exemplary display of information in multipleregions from multiple heterogeneous data source(s);

[0019]FIG. 1B represents a prior art technique wherein a draggableelement is dragged to a drop target for the purpose of relating thedraggable element to the information displayed in the drop target;

[0020]FIG. 2 is a block diagram representing a suitable computing systemenvironment in which the present invention may be implemented;

[0021]FIG. 3 is a block diagram representing an exemplary networkenvironment in which the present invention may be implemented;

[0022]FIG. 4 is an exemplary screen displaying three regions containinginformation from heterogeneous data source(s) representing publisher,book and author information, respectively;

[0023]FIGS. 5 and 6 illustrate a user interface flagging mechanism inaccordance with the present invention;

[0024]FIG. 7 illustrates a view of the overall architecture of the useof a digital dashboard in accordance with exemplary embodiments of thepresent invention;

[0025]FIG. 8 illustrates an exemplary Web part communication after anelement is flagged in accordance with the present invention;

[0026]FIG. 9 illustrates conceptually the relation of information inaccordance with the present invention; and

[0027]FIG. 10 illustrates an exemplary select and flag feedbackmechanism in accordance with the present invention whereby a user isshown the context in accordance with previous flagging events.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0028] Overview

[0029] In consideration of the above need for a system in which a usercan easily join and filter information, to influence the relationship ofinformation in different regions of a display in a computer system, thepresent invention has been developed. The present invention provides asimple and flexible user interface that indicates the context of theinformation being joined and filtered on display. The inventionadvantageously provides a user interface mechanism that allows a user toselectively join and unjoin and filter and unfilter the informationbeing displayed. The invention advantageously provides a user interfacemechanism that allows a user to simultaneously affect the informationbeing displayed in all of the regions of the display, as opposed to asingle region. The invention advantageously provides a user interfacemechanism that enables a user to select and/or flag an element containedin the region for the purpose of performing joining and/or filteringoperations upon the information contained in the other regions of thedisplay based upon the element selected and/or flagged.

[0030] The user interface mechanism of the present invention allows auser to relate information from multiple heterogeneous data sources.Data displayed in different regions on a user interface can be relatedby selection of an element in one region and flagging it i.e., makingthe selection visible to user and storing information about the flaggedelement for relational purposes. The selection of the element may alsoitself flag the element. The flagged element acts as a filter for theinformation in the other regions of the user interface. Successiveflagging of elements in other regions allows further filtering of theinformation in unflagged regions using the context of previously flaggedelements. Elements may be flagged and unflagged freely by selecting andunflagging the element or by selecting a flagged element, therebyunflagging the element. In one embodiment, the flagging occurs bypinning the element, and unflagging occurs by unpinning the object.

[0031] Exemplary Computer and Network Environments

[0032]FIG. 2 and the following discussion are intended to provide abrief general description of a suitable computing environment in whichthe invention may be implemented. It should be understood, however, thathandheld, portable and other computing devices of all kinds arecontemplated for use in connection with the present invention. While ageneral purpose computer is described below, this is but one example,and the present invention requires only a way of rendering informationfor different regions, such as a display via a browser, whereverretrieved. Additionally, the present invention may be implemented in anenvironment of networked hosted services in which very little or minimalclient resources are implicated, e.g., a networked environment in whichthe client device serves merely as a browser or interface to the WorldWide Web.

[0033] Although not required, the invention will be described in thegeneral context of computer-executable instructions, such as programmodules, being executed by one or more computers, such as clientworkstations, servers or other devices. Generally, program modulesinclude routines, programs, objects, components, data structures and thelike that perform particular tasks or implement particular abstract datatypes. Typically, the functionality of the program modules may becombined or distributed as desired in various embodiments. Moreover,those skilled in the art will appreciate that the invention may bepracticed with other computer system configurations. Other well knowncomputing systems, environments, and/or configurations that may besuitable for use with the invention include, but are not limited to,personal computers (PCs), automated teller machines, server computers,hand-held or laptop devices, multi-processor systems,microprocessor-based systems, programmable consumer electronics, networkPCs, minicomputers, mainframe computers and the like. The invention mayalso be practiced in distributed computing environments where tasks areperformed by remote processing devices that are linked through acommunications network or other data transmission medium. In adistributed computing environment, program modules may be located inboth local and remote computer storage media including memory storagedevices.

[0034]FIG. 2 thus illustrates an example of a suitable computing systemenvironment 100 in which the invention may be implemented, although asmade clear above, the computing system environment 100 is only oneexample of a suitable computing environment and is not intended tosuggest any limitation as to the scope of use or functionality of theinvention. Neither should the computing environment 100 be interpretedas having any dependency or requirement relating to any one orcombination of components illustrated in the exemplary operatingenvironment 100.

[0035] With reference to FIG. 2, an exemplary system for implementingthe invention includes a general purpose computing device in the form ofa computer 110. Components of computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memoryto the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus (also known as Mezzanine bus).

[0036] Computer 110 typically includes a variety of computer readablemedia. Computer readable media can be any available media that can beaccessed by computer 110 and includes both volatile and nonvolatilemedia, removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes both volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CDROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can accessed by computer 110. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of any of the aboveshould also be included within the scope of computer readable media.

[0037] The system memory 130 includes computer storage media in the formof volatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 2 illustrates operating system 134, applicationprograms 135, other program modules 136, and program data 137.

[0038] The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 2 illustrates a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156, such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through an non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

[0039] The drives and their associated computer storage media discussedabove and illustrated in FIG. 2 provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 2, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies. A user may enter commands andinformation into the computer 110 through input devices such as akeyboard 162 and pointing device 161, commonly referred to as a mouse,trackball or touch pad. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are often connected to the processing unit120 through a user input interface 160 that is coupled to the system bus121, but may be connected by other interface and bus structures, such asa parallel port, game port or a universal serial bus (USB). A monitor191 or other type of display device is also connected to the system bus121 via an interface, such as a video interface 190. In addition to themonitor, computers may also include other peripheral output devices suchas speakers 197 and printer 196, which may be connected through anoutput peripheral interface 195.

[0040] The computer 110 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 180. The remote computer 180 may be a personal computer, aserver, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to the computer 110, although only a memory storage device 181has been illustrated in FIG. 2. The logical connections depicted in FIG.2 include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

[0041] When used in a LAN networking environment, the computer 110 isconnected to the LAN 171 through a network interface or adapter 170.When used in a WAN networking environment, the computer 110 typicallyincludes a modem 172 or other means for establishing communications overthe WAN 173, such as the Internet. The modem 172, which may be internalor external, may be connected to the system bus 121 via the user inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 2 illustrates remoteapplication programs 185 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

[0042] As mentioned, a computer 110, such as described above, or otherclient device can be deployed as part of a computer network. Further,the present invention pertains to any computer system having any numberof memory or storage units, and any number of applications and processesoccurring across any number of storage units or volumes. Thus, thepresent invention may apply to both server computers and clientcomputers deployed in a network environment, having remote or localstorage.

[0043]FIG. 3 illustrates an exemplary network environment, with a serverin communication with client computers via a network, in which thepresent invention may be employed. As shown, a number of servers 10 a,10 b, etc., are interconnected via a communications network 14 (whichmay be a LAN, WAN, intranet or the Internet) with a number of clientcomputers 110 a, 110 b, 110 c or other client devices 111, such as aportable computer, handheld computer, thin client, network appliance,etc. In a network environment in which the communications network 14 isthe Internet, for example, the servers 10 can be Web servers with whichthe clients 110 a, 110 b, 111, etc. communicate via any of a number ofknown protocols such as hypertext transfer protocol (HTTP).Communications may be wireless, where appropriate. Each client computer110 and server computer 10 may be equipped with various applicationprogram modules 135, other program modules 136 and program data 137, andwith connections or access to various types of storage elements orobjects, across which files may be stored or to which portion(s) offiles may be downloaded or migrated. Any server 10 a, 10 b, etc. may beresponsible for the maintenance and updating of a database 20 inaccordance with the present invention. Thus, the present invention canbe utilized in a computer network environment having client computers110 a, 110 b, etc. for accessing and interacting with a computer networkand server computers 110 a, 110 b, etc. for interacting with clientcomputers 110 a, 110 b, etc. and databases 20.

[0044] Select and Flag User Interface Mechanism

[0045] In accordance with the present invention, select and flag is auser interface mechanism utilized to relate information in differentregions of a computer display. A region displays information in the formof selectable elements, while a selectable element may be a text string,a graphic, or any other element that can be selected using a mouse,keyboard or other user input device.

[0046] An element is flagged either by selecting it implicitly, clickingon it, or by a successive user action such as selecting a flag operationfrom a pop-up menu. Flagging an element activates software services thatmay reside on the client or on a server that notifies the other regionsof the flag operation as well as the element that was flagged. The otherregions relate the flagged element to the information that the regionsrepresent based on receiving this notification. The operation ofrelating the selected element with the information represented by aregion may include joins, filtering, and other like operations on thedata source(s). The act of selecting may itself be sufficient to effectflagging of the element, or flagging may be an additional step beyondselecting.

[0047] The result of the select and flag operation is that one or moreregions may change their display of information to show new informationrelated to the flagged element, depending upon the new context createdby selecting and flagging the element. Both which regions are notifiedand how the regions are related are defined as part of the individualregions and how they are grouped into the particular application for thetype of user implicated.

[0048]FIG. 4 shows an exemplary screen display for a select and flagoperation that relates information displayed in multiple regions.

[0049] The screen display shows information in a book-publishingdatabase. Region1 labeled “Publisher” shows all the publishers, Region3labeled “Author” shows all the authors, and Region2 labeled “Books”shows all the books in the database. None of the information currentlyis flagged as taught by the present invention.

[0050]FIG. 5 shows the result of a select and flag operation in whichthe user, by flagging an element in Region1 with flag F1, has relatedthe element to information displayed in other regions. A publisherelement (“Algodata Infosystems”) has been flagged with flag F1 inRegion1. The flag F1 tells the user that this publisher constitutes thecontext for the other regions. Region3, therefore, shows only elementsreflecting authors who have books published by the flagged publisher andRegion2 shows only books published by the flagged publisher.

[0051]FIG. 6 illustrates the result of two select and/or flagoperations, showing flags F1 and F2. These operations result in elementsin two regions, Region1 and Region3, setting the context for a thirdregion, Region2.

[0052] An author element from the Author region (“Steams, MacFeather”)that was displayed as a result of the previous flag operation with flagF1, has additionally been flagged with flag F2. This results in adisplay of all books, in Region3 labeled “Books”, that have beenpublished by the flagged publisher and written by the flagged author. Itcan be appreciated that in this embodiment, the regions that haveflagged elements in them do not change, although arrangements havingregions with flagged elements that can also change are also feasible.

[0053] As mentioned, select and flag is a user interface mechanismutilized to relate information displayed in different regions of acomputer display. In one embodiment, the method includes a displayscreen that is arranged into two or more regions, with the regionsdisplaying any number of user selectable elements. The method mayinclude a mechanism to detect that a user has selected an element in aspecific region. The method may include a mechanism to flag a selectedelement. This flagging mechanism could be combined with the selecting ofthe element. The method may include a mechanism to communicate the flagevent and the flagged element to one or more regions. The method mayinclude a mechanism to relate the selected element with the informationrepresented by a region and one or more previously flagged elements.Additionally, the method may include a mechanism to display the resultof the relate operation in the affected region.

[0054] Flagging an element thus defines a context for the contentdisplayed in other regions. In order to visualize this relationship,select and flag offers a user interface feedback mechanism by markingthe selected and/or flagged element. It also provides additionalservices to unflag flagged elements.

[0055] The feedback mechanism may include an optional mechanism tohighlight a selected element. The feedback mechanism may include amechanism to mark a flagged element so that the flagged state is visibleto the user. The feedback mechanism may include a mechanism to unflag aflagged element. The feedback mechanism may include a notificationmechanism that notified other regions of an unflag operation.

[0056] The described method can be implemented using a variety ofdifferent technical architectures including both server and client sideexecution. It may be implemented in code or generated from metadescriptions. The following exemplifies one of the possibleimplementation technologies.

[0057] As related in the background, a digital dashboard is a frameworkto build and deploy personalized portals that aggregate personal, team,corporate, and external information and services with single-clickaccess to business intelligence and knowledge management functionality.

[0058]FIG. 7 shows the basic components of a digital dashboard userinterface 720. Information and services from databases or servers 20 athrough 20 d (or other data sources) are represented in the digitaldashboard through reusable Web Parts 710. Web Parts 710 act as channelsfor accessing information or services on backend servers, specifyformatting, and delivering it to a client computer, so that users suchas a customer 730 a, employee 730 b, partner 730 c, supplier 730 d orothers can access the information and perform the select and flagoperations of the present invention.

[0059] Web parts 710 can operate as regions, e.g. regions R1 through R6,as described in the select and flag mechanism described above. Web parts710, through regions R1 to R6, may act as the display for informationemanating from different data sources 20 a through 20 d. The digitaldashboard 720 offers the infrastructure mechanism(s) for Web parts 710to communicate with each other through notifications and shared sessionstate.

[0060] In the context of an exemplary digital dashboard implementation,FIG. 8 shows a Web part communication mechanism illustrating Web partnotification and a shared session state. The Web part communicationmechanism provides a platform for the implementation of select and flagin a browser. Flagging an element in Web part 710 a places theinformation represented by the element in the shared session state 750and raises an event that notifies other Web parts, such as Web part 710b, of the flag operation. The other Web parts are able to retrieve theshared session state and relate the element to the information theyrepresent. In one embodiment of the invention, all of the Web parts 710are notified of the flagging operation. Those Web parts 710 withoutflagged elements are affected by the flagging operation. In anotherembodiment, only those Web parts 710 without flagged elements arenotified, which may be kept track of as part of the shared session state750.

[0061] Relating one or more flagged elements to the informationrepresented by a Web part is a join, filter, or similar operation ondata from data source(s) that is performed automatically in accordancewith the present invention, and does not require the skills of aknowledgeable database engineer. In the embodiment shown, XML isutilized in connection with the Web part communication mechanism,although any format suited to the delivery of information would suffice.

[0062]FIG. 9 shows an example for an underlying query mechanism that canrelate information based on SQL-like queries. Web parts 710, which inthis example serve as the regions of select and flag operations, canretrieve their contained information through queries. The queries areexecuted against the respective data sources 20 and the results aredisplayed as user selectable elements. Flagging an element activates theWeb part notification mechanism and communicates the selected element toone or more other Web parts 710 b that listen for the notification. Thereceiving Web part 710 b retrieves the selected element and uses it toconstruct joins or filter conditions for its query. The new query ispassed to the underlying query mechanism and the results are displayedas Web part information.

[0063] In the example above, a flag operation of an author in the AuthorWeb part 710 a causes the Publisher Web part 710 b to recompute itsquery to show all publishers that have a transitive relationship in thedatabase to the specific author. The relationship between authors, booksand publishers is maintained as part of a model 900.

[0064] As mentioned, the feedback mechanism for the select and flag isintegrated into the Web parts 710 as a standard user interface mechanismof the Digital Dashboard, whereby a user is informed of the context forthe display of data by the visibility of the flags.

[0065]FIG. 10 shows a Web part 710 with the feedback mechanism marked.Selecting an element in the Web part 710 (row) highlights the element.Clicking the element flags the element. In this embodiment, the flaggedstate is indicated by a pin image P1 in the reserved column on the leftside of the Web part 710. It should be understood that a pinningmechanism is merely one implementation of a flagging mechanism, and anytype of flagging mechanism is contemplated. The top part of the columnalso serves as a place to hold the Unflag or unpin function. ClickingUnflag or unpin will automatically remove the pin and notify all otherparts that nothing is flagged or pinned anymore, i.e. that the regionsshould revert the displayed content to its unrelated state.

[0066] The various techniques described herein may be implemented withhardware or software or, where appropriate, with a combination of both.Thus, the methods and apparatus of the present invention, or certainaspects or portions thereof, may take the form of program code (i.e.,instructions) embodied in tangible media, such as floppy diskettes,CD-ROMs, hard drives, or any other machine-readable storage medium,wherein, when the program code is loaded into and executed by a machine,such as a computer, the machine becomes an apparatus for practicing theinvention. In the case of program code execution on programmablecomputers, the computer will generally include a processor, a storagemedium readable by the processor (including volatile and non-volatilememory and/or storage elements), at least one input device, and at leastone output device. One or more programs are preferably implemented in ahigh level procedural or object oriented programming language tocommunicate with a computer system. However, the program(s) can beimplemented in assembly or machine language, if desired. In any case,the language may be a compiled or interpreted language, and combinedwith hardware implementations. As related above, the invention is notrestricted to a personal computing environment, but rather may beimplemented in the context of client services delivered via a networkedserver, wherein a user interface, such as a browser enables the displayof application data. Furthermore, the data displayed via such a userinterface may be retrieved from local or remote storage, delivered viaan application or service, or entered by a user.

[0067] The methods and apparatus of the present invention may also beembodied in the form of program code that is transmitted over sometransmission medium, such as over electrical wiring or cabling, throughfiber optics, or via any other form of transmission, such as wirelesstransmission wherein, when the program code is received and loaded intoand executed by a machine, such as an EPROM, a gate array, aprogrammable logic device (PLD), a client computer, a video recorder orthe like, the machine becomes an apparatus for practicing the invention.When implemented on a general-purpose processor, the program codecombines with the processor to provide a unique apparatus that operatesto perform the flagging and information relation functionality of thepresent invention. For example, the storage techniques used inconnection with the present invention may invariably be a combination ofhardware and software.

[0068] While the present invention has been described in connection withthe preferred embodiments of the various Figures, it is to be understoodthat other similar embodiments may be used or modifications andadditions may be made to the described embodiment for performing thesame function of the present invention without deviating therefrom.

[0069] Furthermore, it should be emphasized that a variety of computerplatforms, including handheld device operating systems and otherapplication specific operating systems are contemplated, especially asthe number of wireless networked devices continues to proliferate.Therefore, the present invention should not be limited to any singleembodiment, but rather construed in breadth and scope in accordance withthe appended claims.

What is claimed is:
 1. A method for interfacing with a computer displaywherein the display comprises a plurality of regions, with each regiondisplaying information associated with at least one of (1) at least onedata source and (2) user entered data, comprising: flagging an elementin a first region; and altering the information displayed in at leastone region, different from said first region, based upon said flaggedelement.
 2. A method according to claim 1, wherein said alteringincludes: communicating said flagging and said flagged element to atleast one of said plurality of regions, different from said firstregion; relating said flagged element with the information representedby said at least one of said plurality of regions, different from saidfirst region; and displaying the result of the relating operation in theat least one of said plurality of regions, different from said firstregion.
 3. The method of claim 1, wherein said plurality of regions area plurality of Web parts.
 4. The method of claim 1, wherein said displayis a browser display displaying said plurality of regions.
 5. The methodof claim 1, wherein said information displayed by each region istransmitted via hyper text transfer protocol.
 6. The method of claim 1,wherein said altering includes filtering at least one of (1) the atleast one data source associated with said at least one region and (2)the information displayed in said at least one region.
 7. The method ofclaim 1, wherein said altering includes joining at least one of (1) theat least one data source associated with said at least one region and(2) the information displayed in said at least one region.
 8. The methodof claim 1, wherein said flagging includes selecting said element insaid first region.
 9. The method of claim 1, further comprisingselecting said element before said flagging.
 10. The method of claim 1,further comprising unflagging said element.
 11. The method of claim 10,wherein unflagging said element restores the information displayed insaid at least one region, different from said first region, to theinformation displayed before flagging said element.
 12. The method ofclaim 10, wherein unflagging said element alters the informationdisplayed in said at least one region, different from said first region,to information displayed without the influence of said element.
 13. Themethod of claim 1, wherein said flagging includes pinning said element.14. The method of claim 10, wherein said unflagging includes unpinningsaid element.
 15. The method of claim 1, wherein the flagged elementindicates the context for the alteration of information in regions nothaving a flagged element.
 16. The method of claim 1, wherein saidaltering of the information consists of altering information displayedin all of said plurality of regions, different from said first region,based upon said flagged element.
 17. The method of claim 1, wherein saidaltering of the information consists of altering information displayedin a second region, different from said first region, only if saidsecond region has no flagged element associated therewith.
 18. Acomputer readable medium bearing computer executable instructions forcarrying out the method of claim
 1. 19. A modulated data signal carryingcomputer executable instructions for use in implementing the method ofclaim
 1. 20. A computer system wherein a user interfaces with a computerdisplay, said system comprising: at least one client computer having adisplay including: a plurality of regions, with each region displayinginformation associated with at least one of (1) at least one data sourceand (2) user entered data; wherein said user flags an element in a firstregion of said plurality of regions, thereby altering the informationdisplayed in at least one region, different from said first region,based upon said element flagged by the user.
 21. The computer system ofclaim 20, wherein said altering includes: said at least one clientcomputer communicating said flagged element to at least one of saidplurality of regions, different from said first region; said computersystem relating said flagged element with the information represented bysaid at least one of said plurality of regions, different from saidfirst region; and displaying on said display of said at least one clientcomputer the result of the relating in the at least one of saidplurality of regions, different from said first region.
 22. The computersystem of claim 20, wherein said information is altered by filtering atleast one of (1) the at least one data source associated with said atleast one region and (2) the information displayed in said at least oneregion.
 23. The computer system of claim 20, wherein said information isaltered by joining at least one of (1) the at least one data sourceassociated with said at least one region and (2) the informationdisplayed in said at least one region.
 24. The computer system of claim20, wherein said plurality of regions are a plurality of Web parts. 25.The computer system of claim 20, wherein said display is a browserdisplay displaying said plurality of regions.
 26. The computer system ofclaim 20, wherein said information displayed by each region istransmitted via hyper text transfer protocol.
 27. The computer system ofclaim 20, wherein said flagging by the user includes selecting saidelement in said first region.
 28. The computer system of claim 20,wherein said flagging by the user occurs after a selecting of saidelement by the user.
 29. The computer system of claim 20, wherein saiduser unflags said element in said first region of said plurality ofregions.
 30. The computer system of claim 23, wherein said unflagging ofsaid element by the user restores the information displayed in said atleast one region, different from said first region, to the informationdisplayed before flagging said element.
 31. The computer system of claim23, wherein said unflagging of said element by the user alters theinformation displayed in said at least one region, different from saidfirst region, to information displayed without the influence of saidelement.
 32. The computer system of claim 20, wherein said flagging bythe user includes pinning said element.
 33. The computer system of claim23, wherein said unflagging by the user includes unpinning said element.34. The computer system of claim 20, wherein the element flagged by theuser indicates the context for the alteration of information in regionsnot having a flagged element.
 35. The computer system of claim 20,wherein the altering of information consists of altering informationdisplayed in all of said plurality of regions, different from said firstregion, based upon said flagged element.
 36. The computer system ofclaim 20, wherein the altering of information consists of altering,based upon said flagged element, information displayed in all of saidplurality of regions not having a flagged element associated therewith.37. A user interface for a display screen that is arranged into aplurality of regions that display user selectable elements, comprising:means for selecting an element in a first region; means for flaggingsaid selected element; means for communicating said flagging and saidflagged element to at least one of said plurality of regions, differentfrom said first region; means for relating said selected element withthe information represented by said at least one of said plurality ofregions, different from said first region, and with one or morepreviously flagged elements; and means for displaying the result of therelating operation in the affected at least one of said plurality ofregions, different from said first region.
 38. The user interface ofclaim 37, wherein the means for selecting is also the means forflagging, and a selection with the means for selecting thereby flags theelement selected.
 39. The user interface of claim 37, wherein the meansfor flagging is a means for pinning.
 40. The user interface of claim 39,wherein the means for selecting is also the means for flagging, and aselection with the means for selecting thereby pins the elementselected.
 41. The user interface of claim 37, further comprising a meansfor unflagging a flagged element.
 42. A method for interfacing with acomputer display wherein the display comprises a plurality of regionsincluding a first region, a second region and a third region, with eachregion displaying information associated with at least one of (1) atleast one data source and (2) user entered data, comprising: flagging afirst element in the first region; flagging a second element in thesecond region; and altering the information displayed in the thirdregion based upon said first and second flagged elements.